This invention relates generally to packet-based communication and, more particularly, to a method and system for controlling the rate of acknowledgment of communication packets.
Many of the packet-based communication protocols in use today require that a receiver of data transmit an acknowledgement to the other party after receiving a predetermined number of packets to insure that no portion of the data is lost. For example, the well-known transmission control protocol (TCP) requires a party to send an acknowledgement (ACK) back to a sender every time it receives two consecutive TCP segments. The rate at which a sending party actually needs to receive acknowledgments, however, may vary according to the nature and volume of the data traffic being experienced by each of the parties. But, as long as the communicating parties are forced to adhere to a pre-determined acknowledgement frequency, neither sender nor receiver has the opportunity to adjust the rate of acknowledgments. As a result many unnecessary acknowledgement messages may be generated and sent. Unnecessary acknowledgments significantly reduce the performance of wireless networks, which have limited bandwidth. In high speed network implementations such as gigabit Ethernet, the rate of unnecessary acknowledgments may be on the order of ten thousand. This represents a considerable waste of bandwidth and both systems"" computing resources.
In accordance with the foregoing, a method and system for controlling the rate of acknowledgment of communication packets is provided. According to the method and system, a sender determines whether or not an acknowledgment is required from a receiver, and if an acknowledgment is required, the sender transmits a packet that is marked to indicate that an acknowledgment is required. There are many different ways in which a packet may be so marked, including generating the packet so that it is shorter than a predefined standard packet length, inserting an optional field, or inserting a value into the packet header. When TCP is being used for communication, the TCP segments may be marked by clearing the ACK bit of the TCP header. Two or more computers that are engaged in or about to engage in packet-based communication may also inform one another of their respective abilities to send and receive marked packets by transmitting capability information to one another.